﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Vit.Web.Services
{
    public interface ILogProvider
    {
        void Info(string category, object obj);
        void Info(string category, string message);
        void Info(string category, string message, params object[] args);
        void Info(string category, IFormatProvider formatProvider, object obj);
        void Info(string category, IFormatProvider formatProvider, string message, params object[] args);

        void Debug(string category, object obj);
        void Debug(string category, string message);
        void Debug(string category, string message, params object[] args);
        void Debug(string category, IFormatProvider formatProvider, object obj);
        void Debug(string category, IFormatProvider formatProvider, string message, params object[] args);

        void Error(string category, object obj);
        void Error(string category, string message);
        void Error(string category, string message, params object[] args);
        void Error(string category, IFormatProvider formatProvider, object obj);
        void Error(string category, IFormatProvider formatProvider, string message, params object[] args);

        void Fatal(string category, object obj);
        void Fatal(string category, string message);
        void Fatal(string category, string message, params object[] args);
        void Fatal(string category, IFormatProvider formatProvider, object obj);
        void Fatal(string category, IFormatProvider formatProvider, string message, params object[] args);

        void Trace(string category, object obj);
        void Trace(string category, string message);
        void Trace(string category, string message, params object[] args);
        void Trace(string category, IFormatProvider formatProvider, object obj);
        void Trace(string category, IFormatProvider formatProvider, string message, params object[] args);

        void Warn(string category, object obj);
        void Warn(string category, string message);
        void Warn(string category, string message, params object[] args);
        void Warn(string category, IFormatProvider formatProvider, object obj);
        void Warn(string category, IFormatProvider formatProvider, string message, params object[] args);
    }
}
